package br.com.sistema.control;

import java.io.Serializable;
import java.util.List;

import br.com.sistema.dao.ClienteDAO;
import br.com.sistema.dao.ClienteDAOImplements;
import br.com.sistema.entidade.Cliente;
import br.com.sistema.util.Constantes;
import br.com.sistema.util.LancamentosDeMensagens;

public class ClienteRN implements Serializable{
	
	private static final long serialVersionUID = 1L;
	private ClienteDAO clienteDAO;

	public ClienteRN() {
		this.clienteDAO = new ClienteDAOImplements();		
	}

	public boolean salvar(Cliente cliente) {
		if (validarEmail(cliente)) {
			if (cliente.getId() != null && cliente.getId() != 0) {
				this.clienteDAO.atualizar(cliente);
				this.clienteDAO.salvar(cliente);
				LancamentosDeMensagens.mensagemInfo(Constantes.ALTERADO_COM_SUCESSO.getValue());
			} else {
				this.clienteDAO.salvar(cliente);
				LancamentosDeMensagens.mensagemInfo(Constantes.SALVO_COM_SUCESSO.getValue());
			}
			return true;
		}else{
			LancamentosDeMensagens.mensagemErro(Constantes.ERRO_VALIDACAO_EMAIL.getValue());
			return false;
		}
	}

	public List<Cliente> listar() {
		return this.clienteDAO.listar();
	}

	public void remover(Integer id) {
		this.clienteDAO.remover(id);

	}

	public Cliente pesquisarPorCodigo(Integer id){
		return this.clienteDAO.buscar(id);
	}

	// Metodos de validacoes
	private boolean validarEmail(Cliente cliente) {
		if (!(cliente.getEmail().contains("@") & cliente.getEmail().contains(
				".com"))) {
			return false;
		}
		return true;
	}
}
